分布式系統是多個計算機系統作為一個單元有效地協同工作的計算機系統。分布式系統的示例包括用于服務網站和在線視頻的內容分發網絡、由多個強大的數學處理器構建的超級計算機以及許多在線系統中使用的分布式數據庫。分布式系統可以比單機系統更具彈性、更強大和更快,但它們也可能需要更多的維護和仔細考慮可能出錯的組織和問題。
分布式系統的優勢
使用分布式系統有許多潛在的優勢。最容易理解的之一是冗余和彈性。如果一家公司從一組分布式服務器而不是單個服務器為其網站提供服務,那么即使一臺服務器出現物理故障,它也可能能夠保持正常運行。如果數據分布在多個服務器或磁盤之間,這在現代分布式系統中很常見,即使存儲設備停止工作,也可能不會丟失任何數據。
速度和內容分發
分布式系統也可以比單機系統更快。分布式數據庫的優點之一是可以將查詢路由到具有特定用戶信息的服務器,而不是所有請求都必須轉到可能過載的單個機器。
請求也可以路由到物理上關閉的服務器或通過快速網絡連接到任何想要數據的人,這可能意味著分配給處理網絡流量和瓶頸的時間和其他資源更少。這在用于在線媒體的內容分發網絡中很常見。
縮放和并行
一旦分布式系統設置為在所涉及的服務器之間分發數據,它們也可以輕松擴展。如果它們設計得很好,它可以像添加一些新硬件并告訴網絡將其添加到分布式系統中一樣簡單。
分布式系統也可以設計用于并行性。這在天氣建模和科學計算等數學運算中很常見,其中多個強大的處理器可以劃分復雜模擬的獨立部分,并比串聯運行它們更快地獲得答案。
分布式計算挑戰
分布式計算的一大挑戰是程序員很難推理。在如何分發數據以確保在各種意外情況下滿足彈性要求方面可能存在挑戰。如果設備需要同步,可能會出現難以發現的錯誤,這些錯誤會導致它們相互等待傳輸數據或意外嘗試同時讀取或寫入同一條數據,從而導致錯誤。
安全和隱私也可能成為分布式系統的一個問題,因為人們的數據存儲在多臺計算機上,有時存儲在多個物理位置。對于某些任務,分布式系統也可能是過度殺傷力,使用了不必要的物理資源和工程時間。